

package modelos;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

import PPuente.AbstraccionListar;
import PPuente.ListarCategoria;
import PPuente.ListarIngrdiente;


public class MCategoria extends MDB implements MFabrica,AbstraccionListar{
    private String descripcion;

    public MCategoria() {
        super();
    }

    @Override
    public boolean registrar(){
        abrir();      
        boolean sw= false;
        String sql="INSERT INTO Categoria (codigo,descripcion,estatus ) VALUES(?,?,?)";
        PreparedStatement stam = crearPreparedStatement(sql);
        try {
            stam.setInt(1, getCodigo());
            stam.setString(2, getDescripcion().toUpperCase());
            stam.setString(3, getEstatus());
            stam.executeUpdate();
            sw= true;
        } catch (SQLException ex) {
            Logger.getLogger(MCategoria.class.getName()).log(Level.SEVERE, null, ex);
        }
        cerrar();
        return sw;
    }
    
    @Override
    public boolean  consultar(){
        abrir();
        boolean sw= false;
        String sql="SELECT * FROM Categoria WHERE codigo=? AND estatus='A'";
        PreparedStatement stam = crearPreparedStatement(sql);
    try {
        stam.setInt(1, getCodigo());
        rs= stam.executeQuery();
        if (rs.next()){
            sw = true;
            setDescripcion(rs.getString("descripcion"));
            setCodigo(rs.getInt("codigo"));
            setEstatus(rs.getString("estatus"));
         }
    } catch (SQLException ex) {
        Logger.getLogger(MCategoria.class.getName()).log(Level.SEVERE, null, ex);
    }
     
    return sw;
  }

    @Override
 public boolean eliminar(){
     return eliminar("Categoria");
 }

    @Override
 public boolean actualizar(){
     abrir();
     boolean sw = false;
     String sql="UPDATE Categoria SET descripcion =? WHERE codigo=?  AND estatus = 'A'";
     PreparedStatement stam = crearPreparedStatement(sql);
     try {
         stam.setString(1,getDescripcion());
         stam.setInt(2, getCodigo());
         stam.executeUpdate();
         sw = true;
     } catch (SQLException ex) {
            Logger.getLogger(MIngrediente.class.getName()).log(Level.SEVERE, null, ex);
     }
     cerrar();
     return sw;
 }

    @Override
    public Vector<? extends MDB> listar(){
    	Vector<MDB> v = new Vector<MDB>();
        new ListarCategoria().listar(v);
        return v;
  }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

	
	

	


}
